package com.Web.filter;


import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@WebFilter("/FilterDemo1")//在这里相当于拦截的对象是FliterServlet
//@WebFilter(value = "FilterServlet1",dispatcherTypes ={DispatcherType.FORWARD})
//结果就是QuickFliter执行了，目标资源FliterServlet没有执行
public class QuickFilterDemo1 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
// 服务器启动项目加载，创建filter独享，执行init方法(只执行一次)
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//      用户访问被拦截的目标资源，执行doFilter方法，执行多次

/*servletRequest.setCharacterEncoding("UTF-8");
servletResponse.setContentType("text/html; charset=UTF-8");
在浏览器输出时使用该数据避免出现中文乱码
*/
//        模拟处理操作
        System.out.println("QuickFliter is running  .....");
//        放行
        filterChain.doFilter(servletRequest,servletResponse);
//        先执行QuickFliter is running  .....  ，后执行FliterServlet is running  .....
    }

    @Override
    public void destroy() {
//在服务器关闭前，filter对象被销毁，如果服务器是正常关闭，则会执行destory方法，只执行一次，用于释放资源
    }





}
